home *** CD-ROM | disk | FTP | other *** search
/ SPACE 2 / SPACE - Library 2 - Volume 1.iso / games / 65 / pascal / modem.pas < prev    next >
Pascal/Delphi Source File  |  1986-10-16  |  2KB  |  58 lines

  1. { Useful modem routines.
  2.   Jim Ockers
  3.   RR#4 Box 209
  4.   Lockport, IL 60441
  5.   (815) 838-3603
  6.  
  7.   Any comments, direct them to me.
  8.  
  9.   This of course is not all original, off the top of my head I must thank
  10.   John Dillenburg, the author to "STV924", and OSS Customer Support. Thanks.
  11.  
  12.   Include this file for modem routines such as input/output, carrier detect,
  13.   setting baud rate, and set/drop the DTR line. }
  14.  
  15. procedure ONGIBIT( BITMASK:INTEGER); XBIOS(29);
  16. procedure OFFGIBIT( BITMASK: INTEGER); XBIOS(30);
  17. procedure RSCONF(SPEED,CTL,UCR,RSR,TSR,SCR: INTEGER); XBIOS(15);
  18. function INPUT_STATUS(DEVICE: INTEGER): BOOLEAN; BIOS(1);
  19. function CHAR_IN(DEVICE: INTEGER): LONG_INTEGER; BIOS(2);
  20. function OUTPUT_STATUS(DEVICE: INTEGER): BOOLEAN; BIOS(8);
  21. procedure CHAR_OUT(DEVICE, CHAR: INTEGER); BIOS(3);
  22. function SUPER( SP: LONG_INTEGER): LONG_INTEGER; GEMDOS($20);
  23.  
  24. procedure SET_DTR(SWITCH: BOOLEAN);
  25.   const
  26.     DTRON_MASK = $ef;
  27.     DTROFF_MASK = $10;
  28.   begin
  29.     if SWITCH then
  30.       ONGIBIT(DTRON_MASK)
  31.     else
  32.       OFFGIBIT(DTROFF_MASK);
  33.   end;
  34.  
  35. function CARRIER: BOOLEAN;
  36.   var
  37.     SSP,     LOC: LONG_INTEGER;
  38.   begin
  39.     CARRIER := FALSE;
  40.     SSP := SUPER(0);
  41.     LOC := LPEEK($fffa00);
  42.     SSP := SUPER(SSP);
  43.     if LOC = -393472 then
  44.       CARRIER := TRUE;
  45.   end;
  46.  
  47. function CONSOLE_INPUT: INTEGER;
  48.   var
  49.     CH: LONG_INTEGER;
  50.   begin
  51.     CONSOLE_INPUT := -1;
  52.     if INPUT_STATUS(2) = TRUE then
  53.       begin
  54.         CH := CHAR_IN(2);
  55.         CONSOLE_INPUT := INT((SHR(CH,8) & $ff00) | (CH & $00ff));
  56.       end;
  57.   end;
  58.